package com.roc.admin.domain.service;

import com.roc.admin.domain.entity.Role;

import java.util.List;

/**
 * 角色领域服务
 */
public interface RoleDomainService {
    
    /**
     * 创建角色
     *
     * @param role 角色实体
     * @return 创建后的角色
     */
    Role createRole(Role role);
    
    /**
     * 更新角色
     *
     * @param role 角色实体
     * @return 更新后的角色
     */
    Role updateRole(Role role);
    
    /**
     * 删除角色
     *
     * @param roleId 角色ID
     */
    void deleteRole(Long roleId);
    
    /**
     * 分配角色菜单
     *
     * @param roleId  角色ID
     * @param menuIds 菜单ID列表
     */
    void assignMenus(Long roleId, List<Long> menuIds);
    
    /**
     * 分配角色部门
     *
     * @param roleId  角色ID
     * @param deptIds 部门ID列表
     */
    void assignDepts(Long roleId, List<Long> deptIds);
}
